﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MealBooking.Core.Models.Accounts;
using MealBooking.Core.Models.Orders;

namespace MealBooking.Core.Services.Interface
{
    public interface IAccountService
    {
        #region Account
        List<Account> AllAccounts();
        Account AccountDetail(Account account);
        Account UpdateAccount(Account newAccount);
        Account ValidateUser(string userName, string password);
        bool ChangePassword(string accountId, string oldPassword, string newPassword);
        bool ChangeRoles(string accountId, int newRoles);
        Account RegisterNewAccount(Account newAccount);
        #endregion

        #region Customer
        Customer CustomerDetail(string accountId);
        void PurchaseBookedOrders(List<Order> orders);
        #endregion

        #region Balance
        List<BalanceHistory> BalanceHistory(string accountId);
        void AddBalance(BalanceHistory balanceHistory);
        #endregion

        #region Manager
        List<Manager> AllManagers();
        Manager ManagerDetail(string accountId);
        #endregion
    }
}